struct Result {
  values : array<f32>;
}

let width : u32 = 128u;

@group(0) @binding(0) var tex : texture_depth_2d;

@group(0) @binding(1) var<storage, read_write> result : Result;

@stage(compute) @workgroup_size(1)
fn main(@builtin(global_invocation_id) GlobalInvocationId : vec3<u32>) {
  result.values[((GlobalInvocationId.y * width) + GlobalInvocationId.x)] = textureLoad(tex, vec2<i32>(i32(GlobalInvocationId.x), i32(GlobalInvocationId.y)), 0);
}
